// Copyright 2021 by 马万里. All rights reserved.
// 开发团队 ：   鸡中之霸
// 开发人员 ：   马万里
// 开发时间 ：   2021/2/21 18:12
// 文件名称 ：   errs.go
// 工程名称 ：   videostream
// 开发工具 ：   GoLand
//

package defs

type Err struct {
	Error     string `json:"error"`
	ErrorCode string `json:"error_code"`
}

type ErrorResponse struct {
	HttpSC int `json:"code"`
	Error  Err `json:"message"`
}

var (
	ErrorRequestBodyParseFailed = ErrorResponse{
		HttpSC: 400,
		Error: Err{
			Error:     "Request body is not correct",
			ErrorCode: "1001",
		},
	}
	ErrorUserNotAuthed = ErrorResponse{
		HttpSC: 401,
		Error: Err{
			Error:     "User authentication failed",
			ErrorCode: "1002",
		},
	}
	ErrorUserForbidden = ErrorResponse{
		HttpSC: 403,
		Error: Err{
			Error:     "User forbidden",
			ErrorCode: "1003",
		},
	}
	ErrorNotFound = ErrorResponse{
		HttpSC: 404,
		Error: Err{
			Error:     "Not found",
			ErrorCode: "1004",
		},
	}
	ErrorDBError = ErrorResponse{
		HttpSC: 500,
		Error: Err{
			Error:     "DB ops failed",
			ErrorCode: "1005",
		},
	}
	ErrorInternalServerError = ErrorResponse{
		HttpSC: 500,
		Error: Err{
			Error:     "Internal server error",
			ErrorCode: "1006",
		},
	}
)
